This invention relates to the field of network analysis, and in particular to a system and method that facilitate the discovery of nodes along the path of a network application, or between any two identified nodes, and the subsequent collection and analysis of performance parameters associated with these nodes and related nodes.
The ever increasing use of applications that communicate across a network has led to changes in the conventional ‘network management’ role. A network manager is generally concerned with the overall health/performance of the network. However, each user of an application is affected by the performance of the particular application on a network, and is relatively uninterested in overall performance measures when the particular application exhibits poor performance on the overall-healthy network. Accordingly, the network manager must be sensitive to application-specific performance problems.
If a user of the application reports a problem, such as long delay times, a network manager generally needs to analyze the performance of the application server node as well as each node in the network along the path between the user and the application server. In like manner, determining the path between two identified nodes will also facilitate preventive maintenance tasks, security analysis, planning tasks, or any other task that requires path identification.
Identifying the nodes along a path is typically a two-step process. Using the OSI network model, a path can be defined by the network layer nodes, or layer-3 nodes, and a more detailed path can be defined by the data-link layer devices, or layer-2 devices. Network layer nodes generally provide dynamic switching, based for example on the current contents of a routing table at the network layer node. Typically, the network layer path between the two nodes is found, then the data link layer devices that lie along the determined path are identified.
There are two common techniques used to determine the network layer path between a source node and a destination node, an ‘active’ technique that includes sending trace messages from the source node to the destination, and a ‘passive’ technique that includes sequentially investigating the configuration of the routers to determine the ‘next hop’ toward the destination.
U.S. Pat. No. 7,742,426, “SYSTEM, METHOD, AND COMPUTER-READABLE MEDIUM FOR DETERMINING A LAYER-2 TRACE IN A HETEROGENEOUS NETWORK SYSTEM”, issued 22 Jun. 2010 to Schumacher et al., discloses using a trace request to identify the network layer path between a pair of nodes, then finding the layer-2 devices along each of the identified links forming the path, and is incorporated by reference herein.
U.S. Pat. No. 7,293,106, “METHOD OF FINDING A PATH BETWEEN TWO NODES IN A NETWORK”, issued 6 Nov. 2007 to Natarajan et al. and incorporated by reference herein, discloses sequentially identifying each next hop based on routing tables, and identifying the data link layer devices along the hop based on a network topology database.
U.S. Pat. No. 7,760,735, “METHOD AND SYSTEM FOR DISCOVERING NETWORK PATHS”, issued 20 Jul. 2010 to Chen et al. and incorporated by reference herein, discloses querying network devices for their current configuration, including routing tables, and sequentially proceeding along the path identified by the next-hop information, using interface definitions at each device to identify the data link layer devices along the path.
While these prior art systems are effective for finding devices along a path between two nodes, they each rely on having access to certain features or capabilities that may or may not be available to a particular network manager. For example, Schumacher relies on having access to the source node in order to send the trace request to the destination node. Often, the network is provided by a third-party provider, and the user at the source node may be reluctant to allow this third-party to access the node. In like manner, Natarajan relies on the fact that the data link layer topology of the network is known. In many cases, the path between two nodes may extend across ‘foreign’ networks, such as public networks, for which topological information is not available. Similarly, Chen relies on being able to query each device along the path of next-hops, presuming that all of the network devices are freely accessible. If a device cannot be queried directly for the next hop, but responds to SNMP requests, the entire routing table would need to be downloaded and processed to determine the next hop. In a large, complex network, the routing tables can be quite large, and it may not be feasible to download all of the routing tables for devices that cannot be queried directly for the next hop.
The analysis of an application specific problem is often compounded if the cause of the problem is a node that is not in the application path but impacts a node that is in the path. For example, most networks are fault-tolerant, such that when a node on a path fails, the path is automatically altered to avoid the failed node. If the alternative path inherently has poorer performance than the original path, the user will typically report a degradation in the application's performance. However, an assessment of the nodes along this new path will not identify the problem, because each node on the new path will be working properly.
It would be advantageous to integrate the variety of techniques used in the path discovery process. It would also be advantageous to automate the use of alternative techniques during the path discovery process. It would also be advantageous to identify nodes that are not on the path that may be impacting the nodes on the path.
These advantages, and others, may be realized by a network analysis system that automatically invokes different path discovery techniques, based on the conditions found as the path discovery process proceeds. The path discovery process determines the path(s) used by the application, collects performance data from the nodes along the path, and communicates this performance data to the problem reporting system for subsequent performance analysis. The system may also maintain a database of prior network configurations to facilitate the identification of nodes that are off the path that may affect the current performance of the application.
Throughout the drawings, the same reference numerals indicate similar or corresponding features or functions. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.